import pjson from '../../../package.json'
let Api = null
let appVersion =''
let systemInfo = {}
let newWx ={}
let upParam ={}
let memberInfo = null
let userInfo = null
let wxuserid = null
let adclientid = null
let getLaunchOptions = null 
let postType = null
let eventList = []
const sdkVersionPlugin = pjson.version
// 得到根对象
export function getRootObj(wx,gl='',param,$api,cb){
	newWx = wx
	appVersion = gl
	upParam = param
	Api = $api
	newWx.getSystemInfo({
		success(res) {
			systemInfo = res
		}
	}) 
	if(cb) cb('初始化成功')
}
// 数据埋点
export function setPoint({pointType = 'page', enterTime = null, outTime = null, shareType=1, posterType = null,desc={}}) {
	getLaunchOptions = newWx.getEnterOptionsSync()
	if(!memberInfo){
		memberInfo = newWx.getStorageSync('memberInfo')
	}
	if(!userInfo){
		userInfo = newWx.getStorageSync('userInfo')
	}	
	if(!wxuserid){
		wxuserid = newWx.getStorageSync('wxuserid')
	}	
	if(!adclientid){
		adclientid = newWx.getStorageSync('adclientid')
	}	
	if(pointType == 'start'){
		 postType = getLaunchOptions.query
		if(postType && postType.scene){
			newWx.setStorageSync('posterType',postType)
		}else if(newWx.getStorageSync('posterType')){
			postType = newWx.getStorageSync('posterType')
		}else{
			if(newWx.getStorageSync('userInfo').poster_type && newWx.getStorageSync('userInfo').poster_type != "undefined"){
				postType = {scene:newWx.getStorageSync('userInfo').poster_type}
			}else{
				postType = {}
			}
			// postType = newWx.getStorageSync('userInfo').poster_type ? {scene:newWx.getStorageSync('userInfo').poster_type} : {}
		}
	}
	let pages = getCurrentPages();
	const point = {
		pointType, //page 是页面类型 event是点击事件类型 start 第一次启动
		event: pointType == 'event' ? { //按钮点击事件（如果pointType是event的时候  当前对象有值 否则为null）
			desc: shareType == 0 ? desc : {}, // 点击事件为其他类型的时候取desc描述 支持自定义
			type: shareType, //事件类型  0 其他点击事件类型 1 海报分享 2.点击转发分享
			posterType, //上面type为1的时候是海报类型：1店铺分享 2个人分享 3商品分享 4秒杀分享 5邀请加入 6代下单 7名片分享 8直播分享 9 阶梯价分享 10 提现授权
			time: enterTime //当前点击的时间戳
		} : null,
		route: pages.length > 0 ? pages[pages.length - 1].route : '', //当前路由
		prevRoute: pages.length > 1 ? pages[pages.length - 2].route : '', //上页路由
		enterTime, //进入时间
		outTime, //出来时间
		stayTime: enterTime && outTime ? (outTime - enterTime) : null, //停留时间
		params: pointType == 'start' ? getLaunchOptions.query : (pages.length > 0 ? pages[pages.length - 1].options : {}), //页面路由参数
		scene: pointType == 'start' ? getLaunchOptions.scene : null, //1001发现栏小程序主入口 1011扫描二维码 1012长按图片识别二维码 1013扫描手机相册中选取的二维码 1035 公众号自定义菜单 1036 App 分享消息卡片（仅第一次上报）
		appId: newWx.getAccountInfoSync().miniProgram.appId, // appId
		sdkVersion: sdkVersionPlugin, //sdk版本号(打点)
		appVersion, //小程序版本号
		postType,         //分享海报类型
		shareCode: newWx.getStorageSync('invitecode'), //分享人信息
		userInfo: {
			jShopStoreId: memberInfo.jshop_store_id ? memberInfo.jshop_store_id : 0, //当前ID （默认0）
			userId: wxuserid, //用户id
			memberSign: memberInfo.member_sign, //成员标识
			roleId: memberInfo.jshop_role_id, //角色id
			sex: userInfo.sex, //1 男 2 女
			brandId: adclientid, //关联的品牌id
			companyId: '' //关联公司的id
		},
		systemInfo: pointType == 'start' ? systemInfo : null
	}
	eventList.push(point)
	if (pointType != 'event') {
		upData()
	} else {
		if (eventList.length > 3) {
			upData()
		}
	} 
     function upData () {
		console.log('上报数据', eventList)
		let dataParam = {
			sdkVersion: sdkVersionPlugin,
			pointList: JSON.stringify(eventList)
		}
		dataParam = Object.assign(dataParam,upParam)
		Api(dataParam, res => {
			eventList = []
		})
		eventList = []
	}

}
